<!DOCTYPE html>
<!-- saved from url=(0041)http://c.biancheng.net/view/vip_7085.html -->
<html lang="zh-CN"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script type="text/javascript" async="" charset="utf-8" src="./13.5Java动态读取文件内容_files/core.php"></script><script async="" src="./13.5Java动态读取文件内容_files/click.php"></script>

<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面，任何其他内容都*必须*跟随其后！ -->
<!-- 启用Chromium高速渲染模式 -->
<meta name="renderer" content="webkit">
<meta name="force-rendering" content="webkit">
<!-- 禁止百度转码 -->
<meta name="applicable-device" content="pc,mobile">
<meta name="MobileOptimized" content="width">
<meta name="HandheldFriendly" content="true">
<meta http-equiv="Cache-Control" content="no-transform">
<meta http-equiv="Cache-Control" content="no-siteapp">
<!-- 禁止识别电话号码 -->
<meta name="format-detection" content="telephone=no">

<link rel="shortcut icon" href="http://c.biancheng.net/favicon.ico?v=1.6.72">
<link href="./13.5Java动态读取文件内容_files/common.css" rel="stylesheet">
<title>Java动态读取文件内容</title>
<meta name="description" content="所谓 动态读取 是指从文件的任意位置开始访问文件，而不是必须从文件开始位置读取到文件末尾。动态读取需要用到 Java 中的 RandomAccessFile 类。 RandomAccessFile 是 Java 输入/输出流体系中">
</head>
<body>
<div id="topbar" class="clearfix">
	<ul id="product-type" class="left">
		<li>
			<a href="http://c.biancheng.net/"><span class="iconfont iconfont-home"></span>首页</a>
		</li>
		<li class="active">
			<a href="http://c.biancheng.net/sitemap/" rel="nofollow"><span class="iconfont iconfont-book"></span>教程</a>
		</li>
		<li>
			<a href="http://vip.biancheng.net/p/vip/show.php" rel="nofollow" target="_blank"><span class="iconfont iconfont-vip"></span>VIP会员</a>
		</li>
		<li>
			<a href="http://vip.biancheng.net/p/q2a/show.php" rel="nofollow" target="_blank"><span class="iconfont iconfont-q2a"></span>一对一答疑</a>
		</li>
		<li>
			<a href="http://fudao.biancheng.net/" rel="nofollow" target="_blank"><span class="iconfont iconfont-fudao"></span>辅导班</a>
		</li>
	</ul>
</div>
<div id="header" class="clearfix">
	<a id="logo" class="left" href="http://c.biancheng.net/">
		<img height="26" src="./13.5Java动态读取文件内容_files/logo.png" alt="C语言中文网">
	</a>
	<ul id="nav-main" class="hover-none left clearfix">
		<li class="wap-yes"><a href="http://c.biancheng.net/">首页</a></li>
		<li><a href="http://c.biancheng.net/c/">C语言教程</a></li>
		<li><a href="http://c.biancheng.net/cplus/">C++教程</a></li>
		<li><a href="http://c.biancheng.net/python/">Python教程</a></li>
		<li><a href="http://c.biancheng.net/java/">Java教程</a></li>
		<li><a href="http://c.biancheng.net/linux_tutorial/">Linux入门</a></li>
		<li><a href="http://c.biancheng.net/sitemap/" title="网站地图">更多&gt;&gt;</a></li>
	</ul>
	<span id="sidebar-toggle" class="toggle-btn" toggle-target="#sidebar">目录 <span class="glyphicon"></span></span>

	<a href="http://vip.biancheng.net/?from=topbar" class="user-info glyphicon glyphicon-user hover-none" target="_blank" rel="nofollow" title="用户中心"></a>
</div>
<div id="main" class="clearfix">
	<div id="sidebar" class="toggle-target">
	<div id="contents">
		<dt><span class="glyphicon glyphicon-option-vertical" aria-hidden="true"></span><a href="http://c.biancheng.net/java/">Java教程</a></dt>
		
			<dd>
				<span class="channel-num">1</span>
				<a href="http://c.biancheng.net/java/10/">Java入门基础及环境搭建</a>
			</dd>
		
			<dd>
				<span class="channel-num">2</span>
				<a href="http://c.biancheng.net/java/20/">Java程序设计基础</a>
			</dd>
		
			<dd>
				<span class="channel-num">3</span>
				<a href="http://c.biancheng.net/java/30/">Java流程控制语句</a>
			</dd>
		
			<dd>
				<span class="channel-num">4</span>
				<a href="http://c.biancheng.net/java/40/">Java字符串处理</a>
			</dd>
		
			<dd>
				<span class="channel-num">5</span>
				<a href="http://c.biancheng.net/java/50/">Java数字和日期处理</a>
			</dd>
		
			<dd>
				<span class="channel-num">6</span>
				<a href="http://c.biancheng.net/java/60/">Java内置包装类</a>
			</dd>
		
			<dd>
				<span class="channel-num">7</span>
				<a href="http://c.biancheng.net/java/70/">Java数组处理</a>
			</dd>
		
			<dd>
				<span class="channel-num">8</span>
				<a href="http://c.biancheng.net/java/80/">Java类和对象</a>
			</dd>
		
			<dd>
				<span class="channel-num">9</span>
				<a href="http://c.biancheng.net/java/90/">Java继承和多态</a>
			</dd>
		
			<dd>
				<span class="channel-num">10</span>
				<a href="http://c.biancheng.net/java/100/">Java异常处理</a>
			</dd>
		
			<dd>
				<span class="channel-num">11</span>
				<a href="http://c.biancheng.net/java/110/">Java集合、泛型和枚举</a>
			</dd>
		
			<dd>
				<span class="channel-num">12</span>
				<a href="http://c.biancheng.net/java/120/">Java反射机制</a>
			</dd>
		<dd class="this"> <span class="channel-num">13</span> <a href="http://c.biancheng.net/java/130/">Java输入/输出流</a> </dd><dl class="dl-sub"><dd>13.1 <a href="http://c.biancheng.net/view/1119.html">Java流的概念</a></dd><dd>13.2 <a href="http://c.biancheng.net/view/1129.html">Java系统流</a></dd><dd>13.3 <a href="http://c.biancheng.net/view/6977.html">Java字符编码介绍</a></dd><dd>13.4 <a href="http://c.biancheng.net/view/1133.html">Java File类</a></dd><dd class="active">13.5 <a href="http://c.biancheng.net/view/vip_7085.html">Java动态读取文件内容</a><span class="glyphicon glyphicon-usd"></span></dd><dd>13.6 <a href="http://c.biancheng.net/view/1144.html">Java字节流的使用</a></dd><dd>13.7 <a href="http://c.biancheng.net/view/1150.html">Java字符流的使用</a></dd><dd>13.8 <a href="http://c.biancheng.net/view/vip_7086.html">Java字节流和字符流的区别，如何区分输入流和输出流？</a><span class="glyphicon glyphicon-usd"></span></dd><dd>13.9 <a href="http://c.biancheng.net/view/6966.html">Java转换流</a></dd><dd>13.10 <a href="http://c.biancheng.net/view/vip_7088.html">Java利用对象序列化控制输入输出</a><span class="glyphicon glyphicon-usd"></span></dd><dd>13.11 <a href="http://c.biancheng.net/view/1153.html">Java保存图书信息</a></dd><dd>13.12 <a href="http://c.biancheng.net/view/vip_7089.html">【Java项目实战】猜数字小游戏</a><span class="glyphicon glyphicon-usd"></span></dd></dl>
			<dd>
				<span class="channel-num">14</span>
				<a href="http://c.biancheng.net/java/java/135/">Java注解</a>
			</dd>
		
	</div>
</div>
	<div id="article-wrap">
		<div id="article">
			<div class="arc-info">
	<span class="position"><span class="glyphicon glyphicon-map-marker"></span> <a href="http://c.biancheng.net/">首页</a> &gt; <a href="http://c.biancheng.net/java/">Java教程</a> &gt; <a href="http://c.biancheng.net/java/130/">Java输入/输出流</a></span>
	<span class="read-num">阅读：6,803</span>
</div>

<div id="ad-position-bottom"></div>
			<h1>Java动态读取文件内容</h1>
			<div class="pre-next-page clearfix">
                    <span class="pre left"><span class="icon">&lt;</span> <span class="text-brief text-brief-pre">上一页</span><a href="http://c.biancheng.net/view/1133.html">Java File类</a></span>
                    <span class="next right"><a href="http://c.biancheng.net/view/1144.html">Java字节流的使用</a><span class="text-brief text-brief-next">下一页</span> <span class="icon">&gt;</span></span>
                </div>
			<div id="ad-arc-top"><p class="pic"></p><p class="text" adid="java-1v1q2a"><a href="http://c.biancheng.net/view/7552.html" target="_blank" style="color: #D33428;">C语言中文网推出辅导班啦，包括<span style="color: #008000;">「C语言辅导班、C++辅导班、算法/数据结构辅导班」</span>，全部都是一对一教学：一对一辅导 + 一对一答疑 + 布置作业 + 项目实践 + 永久学习。QQ在线，随时响应！</a></p></div>
			<div id="arc-body">所谓<span style="color:#006400;">动态读取</span>是指从文件的任意位置开始访问文件，而不是必须从文件开始位置读取到文件末尾。动态读取需要用到 Java 中的 RandomAccessFile 类。<br>
<br>
<span style="color:#b22222;">RandomAccessFile 是 Java 输入/输出流体系中功能最丰富的文件内容访问类</span>，它提供了众多的方法来访问文件内容，它既可以读取文件内容，也可以向文件输出数据。由于 RandomAccessFile 可以从任意位置访问文件，所以在只需要访问文件部分内容的情况下，使用 RandonAccessFile 类是一个很好的选择。<br>
<br>
<span style="color:#b22222;">RandomAccessFile 对象包含了一个记录指针，用以标识当前读写处的位置</span>，当程序新创建一个&nbsp;RandomAccessFile 对象时，该对象的文件记录指针位于文件头（也就是 0 处），当读/写了 n 个字节后，文件记录指针将会向后移动 n 个字节。除此之外，RandonAccessFile 可以自由移动该记录指针，既可以向前移动，也可以向后移动。<br>
<br>
RandomAccessFile 类中提供了一些常用读取和写入数据的方法，如表 1 所示。<br>
<br>
<table border="1">
	<caption>
		表 1 RandomAccessFile 类的常用方法</caption>
	<tbody>
		<tr>
			<th>
				方法名及返回值类型</th>
			<th>
				说明</th>
		</tr>
		<tr>
			<td>
				boolean readBoolean()</td>
			<td>
				从文件中读取一个 boolean 值</td>
		</tr>
		<tr>
			<td>
				byte readByte()</td>
			<td>
				从文件中读取一个带符号位的字节</td>
		</tr>
		<tr>
			<td>
				char readChar()</td>
			<td>
				从文件中读取一个字符</td>
		</tr>
		<tr>
			<td>
				int readlnt()</td>
			<td>
				从文件中读取一个带符号位的整数</td>
		</tr>
		<tr>
			<td>
				long readLong()</td>
			<td>
				从文件中读取一个带符号位的 long 值</td>
		</tr>
		<tr>
			<td>
				String readLine()</td>
			<td>
				从文件中读取下一行文本</td>
		</tr>
		<tr>
			<td>
				void seek(long pos)</td>
			<td>
				指定从文件起始位置开始的指针偏移量</td>
		</tr>
		<tr>
			<td>
				void writeBoolean(boolean v)</td>
			<td>
				以字节的形式向文件中写入一个 boolean 值</td>
		</tr>
		<tr>
			<td>
				void writeByte(int v)</td>
			<td>
				以单字节的形式向文件中写入一个 byte 值</td>
		</tr>
		<tr>
			<td>
				void writeChar(int v)</td>
			<td>
				以双字节的形式向文件中写入一个 char 值</td>
		</tr>
		<tr>
			<td>
				void writelnt(int v)</td>
			<td>
				以4字节的形式向文件中写入一个整数</td>
		</tr>
		<tr>
			<td>
				writeLong(long v)</td>
			<td>
				以8字节的形式向文件中写入一个 long 值</td>
		</tr>
		<tr>
			<td>
				void writeBytes(String s)</td>
			<td>
				以字节序列的形式向文件中写入一个字符串</td>
		</tr>
		<tr>
			<td>
				void skipBytes(int n)</td>
			<td>
				以当前文件指针位置为起始点，跳过 n 字节</td>
		</tr>
	</tbody>
</table>
<br>
RandomAccessFile 类的构造方法有如下两种重载形式。
<ol>
	<li>
		RandomAccessFile(File file, String mode)：访问参数 file 指定的文件，访问形式由参数 mode 指定，mode 参数有两个常用的可选值 r 和 rw，其中 r 表示只读，rw 表示读写。</li>
	<li>
		RandomAccessFile(String name, String mode)：访问参数 name 指定的文件，mode 参数的含义同上。</li>
</ol>
<br>
注意：如果使用 rw 方式声明 RandomAccessFile 对象时，要写入的文件不存在，系统将自动进行创建。<br>
<h4>
	例 1</h4>
编写一个程序，使用 RandomAccessFileDemo 类创建一个 words.txt 文件，然后写入一个长中文字符串，再从第 6 个字节开始读取并输出。<br>
<br>
1）创建一个 RandomAccessFileDemo 类对象。在 main() 方法中创建到 <code>D:\JavaCodes\words.txt</code> 的 File 对象，如果该文件已经存在则先删除再创建，代码如下所示。
<div class="snippet-container" style="undefined;"><div class="sh_bright snippet-wrap"><div class="snippet-menu sh_sourceCode" style="display:none;"><pre><a class="snippet-copy sh_url" href="http://c.biancheng.net/view/vip_7085.html#" style="display: none;">复制</a><a class="snippet-text sh_url" href="http://c.biancheng.net/view/vip_7085.html#">纯文本</a><a class="snippet-window sh_url" href="http://c.biancheng.net/view/vip_7085.html#">复制</a></pre></div><pre class="java sh_java snippet-formatted sh_sourceCode"><ol class="snippet-num"><li><span class="sh_keyword">public</span> <span class="sh_keyword">class</span><span class="sh_normal"> </span><span class="sh_classname">RandomAccessFileDemo</span> <span class="sh_cbracket">{</span></li><li>    <span class="sh_keyword">public</span> <span class="sh_keyword">static</span> <span class="sh_type">void</span> <span class="sh_function">main</span><span class="sh_symbol">(</span>String<span class="sh_symbol">[]</span> args<span class="sh_symbol">)</span> <span class="sh_cbracket">{</span></li><li>        <span class="sh_keyword">try</span> <span class="sh_cbracket">{</span></li><li>            <span class="sh_usertype">File</span><span class="sh_normal"> </span>file <span class="sh_symbol">=</span> <span class="sh_keyword">new</span> <span class="sh_function">File</span><span class="sh_symbol">(</span><span class="sh_string">"D:</span><span class="sh_specialchar">\\</span><span class="sh_string">myJava</span><span class="sh_specialchar">\\</span><span class="sh_string">words.txt"</span><span class="sh_symbol">);</span> <span class="sh_comment">// 指定文件路径</span></li><li>            <span class="sh_keyword">if</span> <span class="sh_symbol">(</span>file<span class="sh_symbol">.</span><span class="sh_function">exists</span><span class="sh_symbol">())</span> <span class="sh_cbracket">{</span> <span class="sh_comment">// 判断文件是否存在</span></li><li>                file<span class="sh_symbol">.</span><span class="sh_function">delete</span><span class="sh_symbol">();</span></li><li>                file<span class="sh_symbol">.</span><span class="sh_function">createNewFile</span><span class="sh_symbol">();</span></li><li>            <span class="sh_cbracket">}</span></li><li>        <span class="sh_cbracket">}</span> <span class="sh_keyword">catch</span> <span class="sh_symbol">(</span><span class="sh_usertype">IOException</span><span class="sh_normal"> </span>e<span class="sh_symbol">)</span> <span class="sh_cbracket">{</span></li><li>            System<span class="sh_symbol">.</span>out<span class="sh_symbol">.</span><span class="sh_function">print</span><span class="sh_symbol">(</span>e<span class="sh_symbol">);</span></li><li>        <span class="sh_cbracket">}</span></li><li>    <span class="sh_cbracket">}</span></li><li><span class="sh_cbracket">}</span></li></ol></pre><pre class="snippet-textonly sh_sourceCode" style="display:none;">public class RandomAccessFileDemo {
    public static void main(String[] args) {
        try {
            File file = new File("D:\\myJava\\words.txt"); // 指定文件路径
            if (file.exists()) { // 判断文件是否存在
                file.delete();
                file.createNewFile();
            }
        } catch (IOException e) {
            System.out.print(e);
        }
    }
}</pre></div></div>
2）创建 RandomAccessFile 对象，以读写方式操作 File 对象。定义一个要写入的字符串，再将其进行格式的转换。这样是为了使其写入文件的内容不出现乱码，再将转换后的内容写入文件，代码如下所示。
<div class="snippet-container" style="undefined;"><div class="sh_bright snippet-wrap"><div class="snippet-menu sh_sourceCode" style="display:none;"><pre><a class="snippet-copy sh_url" href="http://c.biancheng.net/view/vip_7085.html#" style="display: none;">复制</a><a class="snippet-text sh_url" href="http://c.biancheng.net/view/vip_7085.html#">纯文本</a><a class="snippet-window sh_url" href="http://c.biancheng.net/view/vip_7085.html#">复制</a></pre></div><pre class="cpp sh_cpp snippet-formatted sh_sourceCode"><ol class="snippet-num"><li><span class="sh_usertype">RandomAccessFile</span><span class="sh_normal"> </span>raf <span class="sh_symbol">=</span> <span class="sh_keyword">new</span> <span class="sh_function">RandomAccessFile</span><span class="sh_symbol">(</span>file<span class="sh_symbol">,</span><span class="sh_string">"rw"</span><span class="sh_symbol">);</span></li><li><span class="sh_usertype">String</span><span class="sh_normal"> </span>str1 <span class="sh_symbol">=</span> <span class="sh_string">"晴天，阴天，多云，小雨，大风，中雨，小雪，雷阵雨"</span><span class="sh_symbol">;</span>    <span class="sh_comment">// 要写入的字符串</span></li><li><span class="sh_usertype">String</span><span class="sh_normal"> </span>str2 <span class="sh_symbol">=</span> <span class="sh_keyword">new</span> <span class="sh_function">String</span><span class="sh_symbol">(</span>str1<span class="sh_symbol">.</span><span class="sh_function">getBytes</span><span class="sh_symbol">(</span><span class="sh_string">"GBK"</span><span class="sh_symbol">),</span><span class="sh_string">"ISO-8859-1"</span><span class="sh_symbol">);</span>    <span class="sh_comment">// 编码转换</span></li><li>raf<span class="sh_symbol">.</span><span class="sh_function">writeBytes</span><span class="sh_symbol">(</span>str2<span class="sh_symbol">);</span>    <span class="sh_comment">//写入文件</span></li></ol></pre><pre class="snippet-textonly sh_sourceCode" style="display:none;">RandomAccessFile raf = new RandomAccessFile(file,"rw");
String str1 = "晴天，阴天，多云，小雨，大风，中雨，小雪，雷阵雨";    // 要写入的字符串
String str2 = new String(str1.getBytes("GBK"),"ISO-8859-1");    // 编码转换
raf.writeBytes(str2);    //写入文件</pre></div></div>
3）打印出当前指针的位置，然后将其移动到第 6 个字节。再定义一个长度为 2 的 byte 数组，然后开始进行内容的循环读取，将读出的内容以字符串的形式输出到控制台，代码如下所示。
<div class="snippet-container" style="undefined;"><div class="sh_bright snippet-wrap"><div class="snippet-menu sh_sourceCode" style="display:none;"><pre><a class="snippet-copy sh_url" href="http://c.biancheng.net/view/vip_7085.html#" style="display: none;">复制</a><a class="snippet-text sh_url" href="http://c.biancheng.net/view/vip_7085.html#">纯文本</a><a class="snippet-window sh_url" href="http://c.biancheng.net/view/vip_7085.html#">复制</a></pre></div><pre class="java sh_java snippet-formatted sh_sourceCode"><ol class="snippet-num"><li>System<span class="sh_symbol">.</span>out<span class="sh_symbol">.</span><span class="sh_function">println</span><span class="sh_symbol">(</span><span class="sh_string">"当前文件指针的位置："</span> <span class="sh_symbol">+</span> raf<span class="sh_symbol">.</span><span class="sh_function">getFilePointer</span><span class="sh_symbol">());</span></li><li>raf<span class="sh_symbol">.</span><span class="sh_function">seek</span><span class="sh_symbol">(</span><span class="sh_number">6</span><span class="sh_symbol">);</span> <span class="sh_comment">// 移动文件指针</span></li><li>System<span class="sh_symbol">.</span>out<span class="sh_symbol">.</span><span class="sh_function">println</span><span class="sh_symbol">(</span><span class="sh_string">"从文件头跳过6个字节，现在文件内容如下："</span><span class="sh_symbol">);</span></li><li><span class="sh_type">byte</span><span class="sh_symbol">[]</span> buffer <span class="sh_symbol">=</span> <span class="sh_keyword">new</span> <span class="sh_type">byte</span><span class="sh_symbol">[</span><span class="sh_number">2</span><span class="sh_symbol">];</span></li><li><span class="sh_type">int</span> len <span class="sh_symbol">=</span> <span class="sh_number">0</span><span class="sh_symbol">;</span></li><li><span class="sh_keyword">while</span> <span class="sh_symbol">((</span>len <span class="sh_symbol">=</span> raf<span class="sh_symbol">.</span><span class="sh_function">read</span><span class="sh_symbol">(</span>buffer<span class="sh_symbol">,</span> <span class="sh_number">0</span><span class="sh_symbol">,</span> <span class="sh_number">2</span><span class="sh_symbol">))</span> <span class="sh_symbol">!=</span> <span class="sh_symbol">-</span><span class="sh_number">1</span><span class="sh_symbol">)</span> <span class="sh_cbracket">{</span></li><li>    System<span class="sh_symbol">.</span>out<span class="sh_symbol">.</span><span class="sh_function">print</span><span class="sh_symbol">(</span><span class="sh_keyword">new</span> <span class="sh_function">String</span><span class="sh_symbol">(</span>buffer<span class="sh_symbol">,</span> <span class="sh_number">0</span><span class="sh_symbol">,</span> len<span class="sh_symbol">));</span> <span class="sh_comment">// 输出文件内容</span></li><li><span class="sh_cbracket">}</span></li></ol></pre><pre class="snippet-textonly sh_sourceCode" style="display:none;">System.out.println("当前文件指针的位置：" + raf.getFilePointer());
raf.seek(6); // 移动文件指针
System.out.println("从文件头跳过6个字节，现在文件内容如下：");
byte[] buffer = new byte[2];
int len = 0;
while ((len = raf.read(buffer, 0, 2)) != -1) {
    System.out.print(new String(buffer, 0, len)); // 输出文件内容
}</pre></div></div>
4）运行程序，程序运行结果如下所示，显示了写入字符串后指针的位置，以及从文件开关跳过 6 个字节后读取到的字符串，图 1 为写入文件中的字符串内容。
<pre class="info-box">当前文件指针的位置：48
从文件头跳过6个字节，现在文件内容如下：
阴天，多云，小雨，大风，中雨，小雪，雷阵雨</pre>
<br>
<div style="text-align: center;">
	<img alt="word.txt 文件内容" src="./13.5Java动态读取文件内容_files/5-19121Q20544Z7.png"><br>
	图 1&nbsp; word.txt 文件内容</div>
<br>
对比输出结果和图 1 发现，中文字符串已成功写入记事本中，但是读出的字符串内容少了两个字和一个逗号，这是由于使用 RandomAccessFile 的 seek() 方法跳过了前 6 字节（1 个汉字占两字节）。在本程序中将中文字符串进行了编码转换，然后再写入文件。读取时调用的是带有 3 个参数的 read() 方法将记事本中的内容读取出来。<br>
<br>
注意：要<span style="color:#b22222;">写进文本的内容是中文，如果不进行字符的转换，写进去的会是乱码，读取出来的内容也会是乱码</span>。</div>
			<div id="arc-append">
	<p>关注微信公众号「站长严长生」，在手机上阅读所有教程，随时随地都能学习。本公众号由<a class="col-link" href="http://c.biancheng.net/view/8092.html" target="_blank" rel="nofollow">C语言中文网站长</a>运营，每日更新，坚持原创，敢说真话，凡事有态度。</p>
	<p style="margin-top:12px; text-align:center;">
		<img width="180" src="./13.5Java动态读取文件内容_files/qrcode_weixueyuan_original.png" alt="魏雪原二维码"><br>
		<span class="col-green">微信扫描二维码关注公众号</span>
	</p>
</div>
<!-- <p>关注微信公众号「魏雪原」，跟着<a class="col-link" href="/view/8092.html" target="_blank">站长</a>一起学习，拒绝躺平，跳出内卷，用知识完成阶级跃升：</p>
	<ul>
		<li>每日更新，坚持原创，敢说真话，凡事有态度。</li>
		<li>编程+求职+创业+营销，既有硬知识，也有软技能。</li>
		<li>手机端阅读教程，随时随地都能学习。</li>
		<li>即将绑定网站部分功能，包括注册登录、找回密码、获取下载链接等。</li>
	</ul> -->
			<div class="pre-next-page clearfix">
                    <span class="pre left"><span class="icon">&lt;</span> <span class="text-brief text-brief-pre">上一页</span><a href="http://c.biancheng.net/view/1133.html">Java File类</a></span>
                    <span class="next right"><a href="http://c.biancheng.net/view/1144.html">Java字节流的使用</a><span class="text-brief text-brief-next">下一页</span> <span class="icon">&gt;</span></span>
                </div>
			<div id="ad-arc-bottom"></div>

<!-- <div id="ad-bottom-weixin" class="clearfix">
	<div class="left" style="width: 535px;">
		<p><span class="col-red">编程帮</span>，一个分享编程知识的公众号。跟着<a class="col-link" href="/cpp/about/author/" target="_blank">站长</a>一起学习，每天都有进步。</p>
		<p>通俗易懂，深入浅出，一篇文章只讲一个知识点。</p>
		<p>文章不深奥，不需要钻研，在公交、在地铁、在厕所都可以阅读，随时随地涨姿势。</p>
		<p>文章不涉及代码，不烧脑细胞，人人都可以学习。</p>
		<p>当你决定关注「编程帮」，你已然超越了90%的程序员！</p>
	</div>
	<div class="right" style="width: 150px;">
		<img width="150" src="/templets/new/images/erweima_biancheng.gif?v=1.6.72" alt="编程帮二维码" /><br />
		<span class="col-green">微信扫描二维码关注</span>
	</div>
</div> -->

<div id="nice-arcs" class="box-bottom">
	<h4>优秀文章</h4>
	<ul class="clearfix">
<li><a href="http://c.biancheng.net/view/310.html" title="switch语句用法注意事项，如何正确使用switch语句">switch语句用法注意事项，如何正确使用switch语句</a></li>
<li><a href="http://c.biancheng.net/view/373.html" title="printf函数和scanf函数，C语言printf函数和scanf函数详解">printf函数和scanf函数，C语言printf函数和scanf函数详解</a></li>
<li><a href="http://c.biancheng.net/view/856.html" title="Linux groupadd命令：添加用户组">Linux groupadd命令：添加用户组</a></li>
<li><a href="http://c.biancheng.net/view/1470.html" title="指针是什么（详解版）">指针是什么（详解版）</a></li>
<li><a href="http://c.biancheng.net/view/2552.html" title="Python with用法：自动关闭文件">Python with用法：自动关闭文件</a></li>
<li><a href="http://c.biancheng.net/view/2678.html" title="Unity 3D C#脚本基础">Unity 3D C#脚本基础</a></li>
<li><a href="http://c.biancheng.net/view/2692.html" title="Unity 3D Label控件">Unity 3D Label控件</a></li>
<li><a href="http://c.biancheng.net/view/6895.html" title="营销型网站如何留住用户？">营销型网站如何留住用户？</a></li>
<li><a href="http://c.biancheng.net/view/vip_7057.html" title="Java中到底有没有多维数组（长篇神文）？">Java中到底有没有多维数组（长篇神文）？</a></li>
<li><a href="http://c.biancheng.net/redis2/getbit.html" title="Redis GETBIT命令">Redis GETBIT命令</a></li>
</ul>
</div>
		</div>
		
	</div>
</div>
<script type="text/javascript">
// 当前文章ID
window.arcIdRaw = 'a_' + 7085;
window.arcId = "c325D0fyUYMFAlmA/fEUfwCnWcVQvac56dhd3UwPvi/Py+HRAsE1N2EX0kE";
window.typeidChain = "109|79";
</script>
<div id="footer" class="clearfix">
	<div class="info left">
	<p>精美而实用的网站，分享优质编程教程，帮助有志青年。千锤百炼，只为大作；精益求精，处处斟酌；这种教程，看一眼就倾心。</p>
	<p>
		<a href="http://c.biancheng.net/view/8066.html" target="_blank" rel="nofollow">关于网站</a> <span>|</span>
		<a href="http://c.biancheng.net/view/8092.html" target="_blank" rel="nofollow">关于站长</a> <span>|</span>
		<a href="http://c.biancheng.net/view/8097.html" target="_blank" rel="nofollow">如何完成一部教程</a> <span>|</span>
		<a href="http://c.biancheng.net/view/8093.html" target="_blank" rel="nofollow">联系我们</a> <span>|</span>
		<a href="http://c.biancheng.net/sitemap/" target="_blank" rel="nofollow">网站地图</a>
	</p>
	<p>Copyright ©2012-2021 biancheng.net, <a href="http://www.beian.miit.gov.cn/" target="_blank" rel="nofollow" style="color:#666;">陕ICP备15000209号</a></p>
	</div>
	<img class="right" src="./13.5Java动态读取文件内容_files/logo_bottom.gif" alt="底部Logo">
	<span id="return-top"><b>↑</b></span>
</div>

<script type="text/javascript">
window.siteId = 4;
window.cmsTemplets = "/templets/new";
window.cmsTempletsVer = "1.6.72";
</script>

<script src="./13.5Java动态读取文件内容_files/jquery1.12.4.min.js.下载"></script>
<script src="./13.5Java动态读取文件内容_files/common.js.下载"></script>
<span style="display:none;"><script src="./13.5Java动态读取文件内容_files/z_stat.php" type="text/javascript" defer="defer" async="async"></script></span>

</body></html>